GetRawInputDeviceInfo (user32)
Last changed: ScottieMC-65.97.133.122

.
Summary
TODO - a short description

C# Signature:

    [DllImport("user32.dll")]
    public static extern uint GetRawInputDeviceInfo(int deviceHandle, uint command, ref DeviceInfo data, ref uint dataSize);

VB Signature:

Declare Function GetRawInputDeviceInfo  Lib "user32.dll" (TODO) As TODO

User-Defined Types:

        [StructLayout(LayoutKind.Explicit)]
        public struct DeviceInfo
        {
            [FieldOffset(0)]
            public int Size;
            [FieldOffset(4)]
            public int Type;

            [FieldOffset(8)]
            public DeviceInfoMouse MouseInfo;
            [FieldOffset(8)]
            public DeviceInfoKeyboard KeyboardInfo;
            [FieldOffset(8)]
            public DeviceInfoHID HIDInfo;
        }

        public struct DeviceInfoMouse
        {
            uint ID;
            uint NumberOfButtons;
            uint SampleRate;
        }

        public struct DeviceInfoKeyboard
        {
            uint Type;
            uint SubType;
            uint KeyboardMode;
            uint NumberOfFunctionKeys;
            uint NumberOfIndicators;
            uint NumberOfKeysTotal;
        }

        public struct DeviceInfoHID
        {
            uint VendorID;
            uint ProductID;
            uint VersionNumber;
            ushort UsagePage;
            ushort Usage;
        }

Alternative Managed API:

Do you know one? Please contribute it!

Notes:

None.

Tips & Tricks:

Please add some!

Sample Code:

    User32.DeviceInfo di = new User32.DeviceInfo();
    di.Size = Marshal.SizeOf(typeof(User32.DeviceInfo));
    User32.GetRawInputDeviceInfo(device.hDevice, User32.RIDI_DEVICEINFO, ref di, ref size);

Documentation